МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
Національний університет «Львівська політехніка»
ІЕПТ ім. В’ячеслава Чорновола
Кафедра загальної екології та
екоінформаційних систем
РОЗРАХУНКОВА РОБОТА
з предмету: «Алгоритми і структури даних»
Варіант 5
Львів – 2012
Тема: Обробка даних рядкового типу
Мета роботи: ознайомлення з особливостями рядкового типу даних, алгоритми їх обробки, розвиток навичок програмної реалізації обробки рядків.
Завдання: Дано натуральне число n, яке вводиться з клавіатури. Треба вивести на екран символьне представлення цього числа у вигляді послідовності цифр і пропусків, які відокремлюють групи по три цифри починаючи справа. Наприклад, n=12354376, на екрані має бути виведено 12 354 376.
Необхідно розробити алгоритм і скласти програму.
Алгоритм у вигляді блок-схеми
Код програми
# include <iostream.h>
#include <string.h>
# include <conio.h>
int main()
{char a[300];
int i=0;
cout<<"Vvedit naturalne chuslo a=";
cin.getline(a,sizeof(a));
cout<<"\n"<<"Rozdilene chuslo v grupu po 3:\n\n";
do
{cout<<a[i]<<a[i+1]<<a[i+2]<<"\t";
i=i+3; }
while(a[i+4]!='\0');
getch();
return 0;}
Результат роботи програми
/
Тема: Фундаментальні структури даних
Мета роботи: ознайомлення з фундаментальними структурами даних, алгоритмами їх обробки, розвиток навичок програмування.
Завдання: Знайти кількість «щасливих» квитків з номерами від 000000 до 999999 включно. «Щасливим» називають квиток, якщо сума трьох лівих цифр дорівнює сумі трьох правих цифр (наприклад 248707). Розробити алгоритм і скласти програму для рішення задачі.
Алгоритм у вигляді блок-схеми
Код програми
# include <iostream.h>
# include <math.h>
# include <conio.h>
int main()
{int i,j,k,l,m;
int count=0;
for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
for(int k=0;k<10;k++)
for(int l=0;l<10;l++)
for(int m=0;m<10;m++)
for(int n=0;n<10;n++)
if(i+j+k==n+l+m)
{
cout<<i<<j<<k<<l<<m<<n<<" suma="<<(i+j+k)<<endl;
count++;
}
cout<<"count="<<count<<"\n";
getch();
return 0;}
Результат роботи програми
/
Тема: Динамічні структури даних. Організація даних у списки.
Мета роботи: ознайомлення з динамічними структурами даних, вивчення методів їх створення у програмах і алгоритмів їх обробки, формування навичок роботи зі списковими структурами даних.
Завдання: Написати програму для додавання нового елемента в список після елемента з вказаним порядковим номером (тобто вставка не в кінець списку).
Код програми
#include <stdio.h>
#include <alloc.h>
#include <conio.h>
struct element
{ int info;
struct element *next,*prev;
}*p1,*po,*el1,*el2,*p,*t;
int znach,n,m=1,k=1;
void main()
{ clrscr();
puts("VVEDIT ZNACHENNYA ELEMENTIV");
puts("---------------------------\n");
scanf("%d",&znach);
p1=(struct element *)malloc(sizeof(struct element));
p1->info=znach;
p1->next=NULL;
p1->prev=NULL;
el1=(struct element *)malloc(sizeof(struct element));
el1=p1;
scanf("%d",&znach);
while(znach!=0)
{el2=(struct element *)malloc(sizeof(struct element));
el2->info=znach;
el2->prev=el1;
el2->next=NULL;
el1->next=el2;
el1=el2;
po=el2;
scanf("%d",&znach);m++;}
el1=p1;
puts("\n");
puts("ELEMENTY SPYSKU");
puts("---------------------------\n");
do
{printf("%d\n",el1->info);
el1=el1->next;}
while(el1!=NULL);
puts("\n");
puts("vvedit element");
scanf("%d",&znach);
puts("na yaku pozyciyu vstavyty");
scanf("%d",&n);
puts("\n");
el1=p1;
while(n>m)
{puts("V spysku nema stilky elementiv, vvedit inshu pozyciyu");
scanf("%d",&n);}
if(n==1)
{el2=(struct element *)malloc(sizeof(struct element));
el2->info=znach;
el2->prev=NULL;
el2->next=el1;
p1=el2;}
else
if(n==m)
{el2=(struct element *)malloc(sizeof(struct element));
el2-...